{% macro input(name, value, size, maxlen) %}
  <input type="text" name="{{ name }}" value="{{ value|e }}" size="{{ size|default(40) }}" maxlength="{{ maxlen|default(40) }}" />
{% endmacro %}

{% macro password(name, value, size, maxlen) %}
  <input type="password" name="{{ name }}" value="{{ value|e }}" size="{{ size|default(40) }}" maxlength="{{ maxlen|default(40) }}" />
{% endmacro %}

{% macro hidden(name, value) %}
  <input type="hidden" name="{{ name }}" value="{{ value|e }}" />
{% endmacro %}

{% macro checkbox(name, value, realvalue) %}
  <input type="checkbox" name="{{ name }}" value="{{ value|e }}" {% if (value==realvalue) %}checked{% endif %} />
{% endmacro %}

{% macro radio(name, value, realvalue) %}
  <input type="radio" name="{{ name }}" value="{{ value|e }}" {% if (value==realvalue) %}checked{% endif %} />
{% endmacro %}

{% macro textarea(name, value, rows, cols) %}
  <textarea name="{{ name }}" rows="{{ rows|default(10) }}" cols="{{ cols|default(40) }}">{{ value }}</textarea>
{% endmacro %}

{% macro select(name, realvalue, values, rows) %}
<select name="{{ name }}" >
{% for key,value in values %}
<option value="{{ key }}" {% if value==realvalue %}selected="selected"{% endif %}>
{{ value|e }}
</option>
{% endfor %}
</select>
{% endmacro %}

{% macro pages(pagedata,action) %}
{% if (pagedata.pages==1) %}
Одна страница
{% else %}
Страницы: <ul>
{% for i in 1..pagedata.pages %}
{% if i==pagedata.page %}
<li><b>{{ i }}</b></li>
{% elseif i==1 %}
<li><a href="./">{{ i }}</a></li>
{% else %}
<li><a href="{{ i }}.htm">{{ i }}</a></li>
{% endif %}
{% endfor %}
</ul>
{% endif %}
{% endmacro %}

{% macro messages(msgs) %}
{% for msg in msgs %}
{% if msg.level==1 %}
<div class="okmsg">{{ msg.text }}</div>
{% elseif msg.level==2 %}
<div class="warnmsg">{{ msg.text }}</div>
{% else %}
<div class="errmsg">{{ msg.text }}</div>
{% endif %}
{% endfor %}
{% endmacro %}